package com.tbit.uqbike.service.business;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tbit.uqbike.object.pojo.CardAccountBound;
import com.tbit.uqbike.object.pojo.dto.CardAccountBoundDTO;
import com.tbit.uqbike.object.pojo.vo.CardAccountBoundVO;
import com.tbit.uqbike.object.pojo.vo.CardAccountIdAndNameVO;
import com.tbit.common.entity.view.Result;

import java.util.List;

/**
 * 区域共享配置接口
 *
 * @Author:BUGTian
 * @DATE: 2023/1/5
 */
public interface CardAccountBoundService extends IService<CardAccountBound> {
    /**
     * 查询区域共享配置
     *
     * @param brandId
     * @param accountId
     * @param cardType
     * @return
     */
    List<CardAccountBoundVO> queryList(Integer brandId, Integer accountId, Integer cardType);

    /**
     * 新增区域共享配置
     *
     * @param brandId
     * @param configName
     * @param cardType
     * @return
     */
    Result<String> addConfig(Integer brandId, String configName, Integer cardType);

    /**
     * 修改区域共享配置名称
     *
     * @param id
     * @param configName
     * @return
     */
    Result<String> updateConfig(Long id, String configName);

    /**
     * 绑定区域检查
     *
     * @param cardAccountBoundDTO
     * @return
     */
    Result<List<String>> boundCheck(CardAccountBoundDTO cardAccountBoundDTO);

    /**
     * 绑定区域
     *
     * @param cardAccountBoundDTO
     * @return
     */
    Result<String> bound(CardAccountBoundDTO cardAccountBoundDTO);

    /**
     * 查询配置绑定的区域id和名称列表
     *
     * @param id
     * @return
     */
    Result<List<CardAccountIdAndNameVO>> getCardAccountIdAndName(Long id);

    /**
     * 删除单个区域的绑定关系
     *
     * @param id
     * @param accountId
     * @return
     */
    Result<String> delOneAccountBound(Long id, Integer accountId);
}
